home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / netinet / RCS / in.h,v < prev    next >
Text File  |  1989-02-16  |  4KB  |  207 lines

  1. head     1.4;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.4
  10. date     89.02.16.11.12.55;  author brent;  state Exp;
  11. branches ;
  12. next     1.3;
  13.  
  14. 1.3
  15. date     88.06.30.09.50.30;  author ouster;  state Exp;
  16. branches ;
  17. next     1.2;
  18.  
  19. 1.2
  20. date     88.06.29.15.10.57;  author ouster;  state Exp;
  21. branches ;
  22. next     1.1;
  23.  
  24. 1.1
  25. date     88.06.21.11.59.24;  author ouster;  state Exp;
  26. branches ;
  27. next     ;
  28.  
  29.  
  30. desc
  31. @@
  32.  
  33.  
  34. 1.4
  35. log
  36. @Added Sprite IP Protocol number
  37. @
  38. text
  39. @/*
  40.  * Copyright (c) 1982, 1986 Regents of the University of California.
  41.  * All rights reserved.
  42.  *
  43.  * Redistribution and use in source and binary forms are permitted
  44.  * provided that this notice is preserved and that due credit is given
  45.  * to the University of California at Berkeley. The name of the University
  46.  * may not be used to endorse or promote products derived from this
  47.  * software without specific prior written permission. This software
  48.  * is provided ``as is'' without express or implied warranty.
  49.  *
  50.  *    @@(#)in.h    7.5 (Berkeley) 2/22/88
  51.  */
  52.  
  53. #ifndef _IN
  54. #define _IN
  55.  
  56. #ifndef _MACHPARAM
  57. #include <machparam.h>
  58. #endif
  59.  
  60. /*
  61.  * Constants and structures defined by the internet system,
  62.  * Per RFC 790, September 1981.
  63.  */
  64.  
  65. /*
  66.  * Protocols
  67.  */
  68. #define    IPPROTO_IP        0        /* dummy for IP */
  69. #define    IPPROTO_ICMP        1        /* control message protocol */
  70. #define    IPPROTO_GGP        3        /* gateway^2 (deprecated) */
  71. #define    IPPROTO_TCP        6        /* tcp */
  72. #define    IPPROTO_EGP        8        /* exterior gateway protocol */
  73. #define    IPPROTO_PUP        12        /* pup */
  74. #define    IPPROTO_UDP        17        /* user datagram protocol */
  75. #define    IPPROTO_IDP        22        /* xns idp */
  76. #define IPPROTO_SPRITE        90        /* sprite RPC protocol */
  77.  
  78. #define    IPPROTO_RAW        255        /* raw IP packet */
  79. #define    IPPROTO_MAX        256
  80.  
  81.  
  82. /*
  83.  * Ports < IPPORT_RESERVED are reserved for
  84.  * privileged processes (e.g. root).
  85.  * Ports > IPPORT_USERRESERVED are reserved
  86.  * for servers, not necessarily privileged.
  87.  */
  88. #define    IPPORT_RESERVED        1024
  89. #define    IPPORT_USERRESERVED    5000
  90.  
  91. /*
  92.  * Link numbers
  93.  */
  94. #define    IMPLINK_IP        155
  95. #define    IMPLINK_LOWEXPER    156
  96. #define    IMPLINK_HIGHEXPER    158
  97.  
  98. /*
  99.  * Internet address (a structure for historical reasons)
  100.  */
  101. struct in_addr {
  102.     u_long s_addr;
  103. };
  104.  
  105. /*
  106.  * Definitions of bits in internet address integers.
  107.  * On subnets, the decomposition of addresses to host and net parts
  108.  * is done according to subnet mask, not the masks here.
  109.  */
  110. #define    IN_CLASSA(i)        (((long)(i) & 0x80000000) == 0)
  111. #define    IN_CLASSA_NET        0xff000000
  112. #define    IN_CLASSA_NSHIFT    24
  113. #define    IN_CLASSA_HOST        0x00ffffff
  114. #define    IN_CLASSA_MAX        128
  115.  
  116. #define    IN_CLASSB(i)        (((long)(i) & 0xc0000000) == 0x80000000)
  117. #define    IN_CLASSB_NET        0xffff0000
  118. #define    IN_CLASSB_NSHIFT    16
  119. #define    IN_CLASSB_HOST        0x0000ffff
  120. #define    IN_CLASSB_MAX        65536
  121.  
  122. #define    IN_CLASSC(i)        (((long)(i) & 0xe0000000) == 0xc0000000)
  123. #define    IN_CLASSC_NET        0xffffff00
  124. #define    IN_CLASSC_NSHIFT    8
  125. #define    IN_CLASSC_HOST        0x000000ff
  126.  
  127. #define    IN_CLASSD(i)        (((long)(i) & 0xf0000000) == 0xe0000000)
  128. #define    IN_MULTICAST(i)        IN_CLASSD(i)
  129.  
  130. #define    IN_EXPERIMENTAL(i)    (((long)(i) & 0xe0000000) == 0xe0000000)
  131. #define    IN_BADCLASS(i)        (((long)(i) & 0xf0000000) == 0xf0000000)
  132.  
  133. #define    INADDR_ANY        (u_long)0x00000000
  134. #define    INADDR_BROADCAST    (u_long)0xffffffff    /* must be masked */
  135. #ifndef KERNEL
  136. #define    INADDR_NONE        0xffffffff        /* -1 return */
  137. #endif
  138.  
  139. #define    IN_LOOPBACKNET        127            /* official! */
  140.  
  141. /*
  142.  * Socket address, internet style.
  143.  */
  144. struct sockaddr_in {
  145.     short    sin_family;
  146.     u_short    sin_port;
  147.     struct    in_addr sin_addr;
  148.     char    sin_zero[8];
  149. };
  150.  
  151. /*
  152.  * Options for use with [gs]etsockopt at the IP level.
  153.  */
  154. #define    IP_OPTIONS    1        /* set/get IP per-packet options */
  155.  
  156. /*
  157.  * Macros for network/external number representation conversion.
  158.  */
  159.  
  160. #if BYTE_ORDER == BIG_ENDIAN && !defined(lint)
  161. #define ntohl(x)        (x)
  162. #define ntohs(x)        (x)
  163. #define htonl(x)        (x)
  164. #define htons(x)        (x)
  165. #else
  166. unsigned short  ntohs(), htons();
  167. unsigned long   ntohl(), htonl();
  168. #endif
  169.  
  170. #endif _IN
  171. @
  172.  
  173.  
  174. 1.3
  175. log
  176. @Added byte-order macros.
  177. @
  178. text
  179. @d38 1
  180. @
  181.  
  182.  
  183. 1.2
  184. log
  185. @Add ifdefs to keep files from being processed twice.
  186. @
  187. text
  188. @d18 4
  189. d117 12
  190. a128 5
  191. #ifdef KERNEL
  192. extern    struct domain inetdomain;
  193. extern    struct protosw inetsw[];
  194. struct    in_addr in_makeaddr();
  195. u_long    in_netof(), in_lnaof();
  196. @
  197.  
  198.  
  199. 1.1
  200. log
  201. @Initial revision
  202. @
  203. text
  204. @d15 3
  205. d119 2
  206. @
  207.